
.pc-only {
    display: block;
}
.phone-only {
    display: none;
}
.screen-only {
    display: block;
}
.print-only {
    display: none;
}
@media screen and (max-width: 640px) {
    .pc-only {
        display: none;
    }
    .phone-only {
        display: block;
    }
}

.error-container {
    min-height: 50vh;
    height: auto;
    margin: 0 2rem;
    padding: 4rem 0;
}
p.error {
    margin-bottom: 0.5rem;
}
.error-details {
    font-size: 100%;
    font-family: monospace;
    word-break: break-all;
    margin-bottom: 4rem;
}

fieldset {
    margin-bottom: 2rem;
    padding: 0.5rem 1rem;
    border: 1px solid #a0a0a0;
}
input, select, textarea {
    margin-bottom: 0.2rem;
}
textarea {
    height: auto;
}
legend {
    font-size: 180%;
}

.compactForm {
    div.submit {
        display: inline-block;
        vertical-align: bottom;
        margin: 0 1rem 0.5rem 2rem;
    }
}

@media screen and (max-width: 640px) {
    .top-nav {
        flex-direction: column;
    }

    h2 {
        font-size: 3rem;
        font-weight: bold;
        margin-top: 2rem;
        margin-bottom: 1rem;
        text-align: center;
        color: #333;
    }

    h3 {
        padding: 1rem;
        margin: 1.5rem 0 0.8rem;
        border-radius: 0.5rem;
        font-size: 2rem;
        font-weight: bold;
    }

    h4 {
        font-size: 1.8rem;
        font-weight: bold;
        margin-top: 1rem;
        margin-bottom: 0.5rem;
        color: #666;
        border-left: 4px solid #424141;
        background-color: #dadada;
        padding-left: 0.6rem;
    }

    fieldset {
        border: none;
        padding: 0;
        margin: 1rem 0 0 0;
    }

    legend {
        font-size: 2.2rem;
        color: #2196f3;
        font-weight: bold;
        margin-bottom: 1rem;
        padding: 0;
        border: none;
    }

    .view.content h2 {
        font-size: 2.2rem;
        color: #2196f3;
        font-weight: bold;
        margin: 2rem 0 1rem;
    }

    .metadata > div {
        margin: 0.3rem 0.5rem;
        padding: 0.3rem 0.5rem;
        border-bottom: none;
        line-height: 1.3;
    }
}
.top-nav-title span.titleAdmin {
    font-weight: bold;
    color: var(--color-message-success-text);
}
.top-nav-title span.titleDev {
    font-weight: bold;
    color: var(--color-message-warning-border);
}
.top-nav-links {
    line-height: 1;
    text-align: right;
    > * {
        display: inline-block;
        margin: 0.2rem 0.5rem;
    }
}

h2 {
    margin: 2.5rem 0 0.5rem 0;
}
h3 {
    margin: 2rem 0 0.5rem 0;
}
h4 {
    margin: 1.5rem 0 0.3rem 0;
}
h3 > button,
h3 > a.button {
    margin-bottom: 0;
}

.container {
    min-height: calc(100vh - 350px);
    padding: 0 1rem;
}
.content {
    padding: 2rem 1rem;
    > h2:first-child, > h3:first-child, > h4:first-child {
        margin-top: 0;
    }
}

.button, button, input[type='button'], input[type='reset'], input[type='submit'] {
    font-size: 2rem;
}
.button.done, button.done, input[type='button'].done, input[type='reset'].done {
    /* input[type='submit'] には done は存在しない(少なくとも現時点では) */
    background-color: var(--color-message-success-bg);
    border-color: var(--color-message-success-bg);
    color: var(--color-button-text);
}
.button.supplement, button.supplement, input[type='button'].supplement, input[type='reset'].supplement, input[type='submit'].supplement {
    background-color: #83CBEB;
    border-color: #83CBEB;
    color: var(--color-button-text);
    font-size: 1.2rem;
    line-height: 1.3rem;
    height: 3.3rem;
    padding: 0 1rem;
}
.button.supplementLarge, button.supplementLarge, input[type='button'].supplementLarge, input[type='reset'].supplementLarge, input[type='submit'].supplementLarge {
    background-color: #83CBEB;
    border-color: #83CBEB;
    color: var(--color-button-text);
}
.button.deprecated, button.deprecated {
    background-color: #c0c0c0;
    border-color: #b0b0b0;
    color: var(--color-button-text);
}
.button.danger, button.danger {
    background-color: var(--color-cakephp-red);
    color: var(--color-white);
}
.button.disabled {
    pointer-events: none;
    background-color: var(--color-lightgray);
    border: var(--color-cakephp-gray);
}
.button.fullWidth, button.fullWidth, input[type='button'].fullWidth, input[type='reset'].fullWidth, input[type='submit'].fullWidth {
    width: 100%;
    max-width: 760px;
    display: block;
    margin: 1rem auto;
}

input[type='color'], input[type='date'], input[type='datetime'], input[type='datetime-local'], input[type='email'], input[type='month'], input[type='number'], input[type='password'], input[type='search'], input[type='tel'], input[type='text'], input[type='url'], input[type='week'], input:not([type]), select {
    width: auto;

    /* 本当は以下のように書きたいけども、ダメっぽい。
    :disabled {
        background-color: #e0e0e0;
    }
    */
}
input[type='text']:disabled, input[type='email']:disabled {
    background-color: #e0e0e0;
}

input[type='time'] {
    -webkit-appearance: none;
    background-color: transparent;
    border: 0.1rem solid #d1d1d1;
    border-radius: .4rem;
    box-shadow: none;
    box-sizing: inherit;
    height: 3.8rem;
    padding: .6rem 1.0rem .7rem;
}

div.input.text,
div.input.tel,
div.input.email,
div.input.password,
div.input.number,
div.input.checkbox,
div.input.radio,
div.input.select,
div.input.date,
div.input.month,
div.input.time {
    display: inline-block;
    margin: 0.5rem 1rem;
    vertical-align: top;
}
div.input.textarea {
    margin: 1rem;
}

div.filter-item {
    margin: 0.5rem 1rem;
    vertical-align: top;
    > ul {
        list-style: none;
        > li {
            display: inline-block;
            margin: 0.5rem 1rem;
            padding: 0.5rem 1rem;
            border: 1px solid #c0c0c0;
            border-radius: 4px;
            cursor: pointer;
        }
        > li:hover {
            background-color: #ffffc0;;
        }
    }
}

div.input.radio {
    > label:not(:first-child) {
        display: inline-block;
        margin: 0.2rem 1rem;
    }
    > label.safe-option {
        font-size: 150%;
        background-color: var(--color-message-success-bg);
        padding: 0.2rem 1rem;
    }
    > label.danger-option {
        background-color: var(--color-message-error-bg);
        padding: 0.2rem 1rem;
    }
    input[type='radio'] {
        margin-right: 0.3rem;
    }
}
div.input.required {
    > label:first-child::before,
    > .twoColumns > .leftColumn > label:first-child::before {
        content: '*';
        color: red;
        margin-right: 0.2rem;
    }
}

.error-message {
    color: red;
}
.message.not-running {
    font-size: 300%;
    text-align: center;
    cursor: auto;
}

table {
    border-collapse: collapse;
    width: 100%;
}
th, td {
    border: 1px solid #cccccc;
    padding: 0.4rem 0.6rem;
}
td:first-child, th:first-child {
    padding-left: 0.6rem;
}
td:last-child, th:last-child {
    padding-right: 0.6rem;
}
tr.selected > td {
    background-color: #f0f0a0;
}
td.number {
    text-align: right;
}
tr.disabled > td {
    background-color: #d0d0d0;
}

.sunday {
    background-color: #ffd0d0;
}
.saturday {
    background-color: #c0e0ff;
}
.today {
    background-color: var(--color-message-warning-bg);
}
.anotherMonth {
    background-color: var(--color-main-bg);
}

.newsList {
    > div {
        display: inline-block;
        width: 45%;
        min-width: 320px;
        margin: 1rem;
        padding: 0.5rem 1rem;
        vertical-align: top;
        border: 1px solid #e1e1e1;

        > a {
            display: inline-block;
            font-size: 180%;
            width: 100%;
        }
    }
}

/* link */
a {
    font-size: 120%;
}
.journalCalendar a {
    font-size: 100%;
}
a.center {
    display: block;
    width: fit-content;
    margin: 0.5rem auto;
    text-align: center;
}

footer {
    max-width: 112.0rem;
    padding: 0 2rem;
    margin: 2rem auto 5rem auto;
    > ul {
        list-style: none;
        > li {
            display: inline-block;
            margin: 0.5rem 1rem;
        }
    }
}
footer > .copyright {
    text-align: center;
    font-size: 90%;
    color: var(--color-cakephp-gray);
}

@media print {
    * { overflow: visible !important; }
    nav, .nav-in-header, footer, iframe, button, a.button, div.message, td.actions, th.actions, .screen-only {
        display: none !important;
    }
    .print-only {
        display: block;
    }
    body {
        font-size: 1.2em; /* milligramのデフォルトは1.6em */
        line-height: 1.1;
        -webkit-print-color-adjust: exact;
        background-color: white;
    }
    .content {
        padding: 0;
        background: var(--color-white);
        border-radius: 0;
        box-shadow: none;
    }
    td, th {
        word-wrap: break-word;
        word-break: break-word;
        white-space: normal;
    }
    tr.not-running {
        display: none;
    }
}
