/* 
全画面共通
==================================================*/

:root {     /* 全画面共通のCSS変数定義 */
    --color-viewer: #842f00;
    --color-manager: #6aa84f;
}

.kosugi-maru-regular {
    font-family: "Kosugi Maru", sans-serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.5;
}

button, input, select, textarea {
    font-family : inherit;
    font-weight: inherit;
    font-style: inherit;
    line-height: inherit;
}

a {
    text-decoration: none;
}
a:not(.manager-btn):visited {
    color: #0000EE;
}

body {
    margin: 40px 5%;
    color: #333
}

footer {
    padding: 8px 0px;
    margin-top: 20px;
    text-align: center;
    color: #666
}

table {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    table-layout: fixed;
    word-break: break-all;
    word-wrap: break-all;
}

th, td {
    padding: 8px;
}

.w40 {
    width: 40%;
}

.w80px {
    width: 80px;
}

.w120px {
    width: 120px;
}

.w300px {
    width: 300px;
}

.w360px {
    width: 360px;
}

.mtb8 {
    margin-top: 8px;
    margin-bottom: 8px;
}

.ta-center {
    text-align: center;
}

.bold {
    font-weight: bold;
}

.alert, .MessageError {
    margin: 8px 0;
    padding: 15px 15px 15px 40px;
    border-radius: 4px;
    background: #f8d6d9;
    color: #721c24;
}

.MessageSuccess {
    margin: 8px 0;
    padding: 15px 15px 15px 40px;
    border-radius: 4px;
    background: #ddf;
    color: #44f;
}

::placeholder {
    color: #ccc;
}

/* コンテンツが左右に張り付くFlexBox */
div.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* コンテンツが左に張り付くFlexBox */
div.flex-start {
    display: flex;
    justify-content:flex-start;
    align-items: center;
    flex-wrap: wrap;
}

/* コンテンツが左に張り付くFlexBox(勝手に改行しない版) */
div.flex-start-no-wrap, label.flex-start-no-wrap {
    display: flex;
    justify-content:flex-start;
    align-items: center;
}

/* コンテンツが縦並びになるFlexBox */
div.flex-column {
    display: flex;
    flex-direction: column;
}

/* コンテンツが中央に集まるFlexBox */
div.flex-center {
    display: flex;
    justify-content:center;
    align-items: center;
    flex-wrap: wrap;
}

.right {
    margin-left: auto;
    right: 0;
}

/* 
Viewer用
==================================================*/
body.viewer {
    background-color: #fce5cd;
    footer {
        border-top: 2px solid var(--color-viewer);
    }
}

.viewer h1 {
    color: var(--color-viewer);
    font-size: 1.8rem;
    font-weight: bold;
}

body.viewer .pagetop {
    display: flex;
    align-items: center;
    font-weight: bold;
    font-size: 1.2rem;
    color: var(--color-viewer);
    padding: 8px 0px;
    border-top: 2px solid var(--color-viewer);
    border-bottom: 2px solid var(--color-viewer);
}

body.viewer div.content {
    padding: 20px 0px 0px;
}

.viewer-btn {  /* viewerのボタンの基本スタイル */
    background-color: var(--color-manager);
    color: #eee;
    border-radius: 4px;
    border: 2px solid #bbb;
    text-align: center;
    font-size: 1rem;
    box-sizing: content-box;
}

.viewer-btn:hover {
    opacity: 0.7;
}

.viewer-table {     /* 苗情報画面の表 */
    .heading {
        background-color: #efefef;
        text-align: center;
        font-weight: bold;
    }
    .item {
        background-color: #ffffff;
    }
}

/*===== Viewer/トップ画面 =====*/
form.search_form {
    button {
        margin: 8px 8px;
        padding: 0;
        border-radius: 8px;
        width: 60px; height: 40px;
        font-size: 1.2rem;
    }

    input[type='text'] {
        flex-grow: 1;
        max-width: 200px;
        height: 40px;
        margin: 0;
        padding: 0 40px 0 8px ;
        border-radius: 8px;
        border: 2px solid #bbb;
        font-size: 1rem;
        box-sizing: content-box;
        background-color: #fff;
        background-image: url(../img/qr.png);
        background-position: right 4px center;
        background-repeat: no-repeat;
        background-size: 32px;
    }
}

/* 
Manager用
==================================================*/
body.manager {
    background-color: #f0fff0;
    footer {
        border-top: 2px solid var(--color-manager);
    }
}

.manager h1 {
    color: var(--color-manager);
    font-size: 1.8rem;
    font-weight: bold;
}

.manager h2 {
    color: var(--color-manager);
    font-size: 1.2rem;
    font-weight: bold;
}

.manager-btn {  /* Managerのボタンの基本スタイル */
    background-color: var(--color-manager);
    color: #eee;
    border-radius: 4px;
    border: 2px solid #bbb;
    text-align: center;
    font-size: 1rem;
    box-sizing: content-box;
}

.manager-btn:hover, .manager-logout:hover {
    opacity: 0.7;
}

.manager-btn-deactive {
    background-color: #eee;
    color: #ddd;
}

.manager-logout {
    background-color: #999;
    color: #eee;
}

div.manager-common {    
    /* トップメニュー以外のManager画面の上の方の共通部分 */
    width: 100%;
    padding-bottom: 8px;

    .logo {
        margin-right: 8px;
    }

    .appname {
        color: var(--color-manager);
        font-weight: bold;
        font-size: 1.2rem;
    }

    button {
        width: 100px;
        margin: 0;
    }
}

/*===== Manager/ログイン画面 =====*/
.login-form{
    display: flex;
    flex-flow: column;
    align-items: center;

    & input.login-form-content, button {
        margin: 8px 0;
        padding: 0;
        border-radius: 12px;
        border: 4px solid #aaa;
        width: 300px;
        max-width: 90%;
        text-align: center;
        font-size: 1.7rem;
    }
}

/*===== Manager/トップメニュー画面 =====*/
.menu {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;

    a, button, span {
        width: 200px;
        max-width: 90%;
        margin: 8px;
        padding: 0;
        border-radius: 12px;
        border-width: 4px;
        text-align: center;
        font-size: 1.2rem;
    }
}

/*===== Manager/ID発行画面 =====*/
div.manager-section {
    padding: 8px 0;
    border-top: 2px solid var(--color-manager);
}

form.id_issue_form {
    button {
        margin: 8px 0;
        padding: 0;
        border-radius: 12px;
        width: 200px;
        font-size: 1.7rem;
    }

    select, input[type='text'] {
        flex-grow: 1;
        min-width: 300px;
        height: 40px;
        margin: 0;
        padding: 0 8px;
        border-radius: 4px;
        border: 2px solid #bbb;
        font-size: 1rem;
        box-sizing: content-box;
        background: #fff;
    }

    input[type='text']:disabled {
        background: #ccc;
    }
}

.required::after {
    content: " *";
    color: red;
}

input[type='checkbox']{
    border: 2px solid #bbb;
    width: 32px;
    height: 32px;
    margin: 4px;
}

input[type='radio']{
    width: 32px;
    height: 32px;
    margin: 4px;
}

.spinner-wrap {
    position: relative;
    width: 150px; height: 40px;
    margin-right: 16px;

    & input {
        appearance: none;
        position: absolute;
        top: 0;
        display: block;
        box-sizing: border-box;
        width: 150px;
        height: 40px;
        padding: 0 50px;
        text-align: center;
        border-radius: 4px;
        border: 2px solid #bbb;
        font-size: 1rem;
    
    }

    & input::-webkit-outer-spin-button,
    & input::-webkit-inner-spin-button {
        -webkit-appearance: none;
    }

    .spinner-down, .spinner-up {
        position: absolute;
        top: 2px; bottom: 2px;;
        width: 36px;
        height: 36px;
        border: 1px solid #bbb;
        background: lightgrey;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .spinner-down {
        left: 2px;
    }

    .spinner-up {
        right: 2px;
    }
}

table.issue-table {
    background-color: white;
    td:nth-child(1) {
        width: 30%;
        min-width: 100px;
    }
    td:nth-child(3), td:nth-child(4) {
        width: 60px;
        padding: 8px 4px;
    }
    th, td {
        text-align: center;
        border: 1px solid #000;
    }
    th {
        background-color: #efefef;
        font-weight: bold;
    }
    button {
        width: 40px;
    }
}

/*===== Manager/苗データ編集画面 =====*/
form.seedling_edit_form {
    button {
        margin: 8px 0;
        padding: 0;
        border-radius: 12px;
        width: 200px;
        font-size: 1.7rem;
    }

    select, input[type='text'] {
        flex-grow: 1;
        min-width: 300px;
        height: 40px;
        margin: 0;
        padding: 0 8px;
        border-radius: 4px;
        border: 2px solid #bbb;
        font-size: 1rem;
        box-sizing: content-box;
        background: #fff;
    }

    select:disabled, input[type='text']:disabled {
        background: #ccc;
        opacity: 0.7;
    }
}

table.edit-table {
    background-color: white;
    td:nth-child(5) {
        width: 60px;
        padding: 8px 4px;
    }
    th, td {
        text-align: center;
        border: 1px solid #000;
    }
    th {
        background-color: #efefef;
        font-weight: bold;
    }
    button {
        width: 40px;
    }

    tr.add_record {
        background-color: #fdd;
    }

    select, input {
        flex-grow: 1;
        height: 40px;
        min-width: 60px;
        width:100%;
        margin: 0;
        padding: 0 8px;
        border-radius: 4px;
        border: 2px solid #bbb;
        font-size: 1rem;
        box-sizing: border-box;
        background: #fff;
    }

    select:disabled {
        background: #ccc;
        opacity: 0.7;
    }
}
