@charset "utf-8";

:root {
    --color-white: #fff;
    --color-text: #414848;
    --color-muted: #678889;
    --color-gray: #9d9e9e;
    --color-bg: #f3f3f3;
    --color-footer: #d4dedf;
    --color-primary: #56c2e1;
    --color-primary-hover: #3f9db8;
    --color-primary-border: #46b3d3;
    --color-secondary: #a9a9a9;
    --color-secondary-hover: #808080;
    --color-selection: #f676b2;
    --color-error-bg: #f2dede;
    --color-error-border: #ebccd1;
    --color-error-text: #a94442;

    --radius: 5px;
    --shadow-panel: 0 1px 3px rgba(0, 0, 0, 0.5);
    --shadow-inset: inset 0 1px 3px rgba(0, 0, 0, 0.5);
    --shadow-inset-soft: inset 0 0 2px rgba(255, 255, 255, 0.75);

    --font-base: 'メイリオ', 'ＭＳ ゴシック', sans-serif;
    --font-button: ヒラギノ角ゴ Pro W3, Hiragino Kaku Gothic Pro, メイリオ, Meiryo, 'ＭＳ Ｐゴシック', MS PGothic, sans-serif;
}

::selection {
    color: var(--color-white);
    background: var(--color-selection);
}

::-moz-selection {
    color: var(--color-white);
    background: var(--color-selection);
}

* {
    margin: 0;
    padding: 0;
    border: 0;
    box-sizing: border-box;
}

body {
    background: url(../images/bg.png) repeat;
    font-family: var(--font-base);
    font-weight: 300;
    text-align: left;
    text-decoration: none;
}

#wrapper {
    width: 300px;
    min-height: 400px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.gradient {
    width: 600px;
    height: 600px;
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background:
        radial-gradient(circle at center, rgba(213, 246, 255, 1) 0%, rgba(213, 246, 255, 0) 70%),
        url(../images/gradient.png) no-repeat center;
}

.login-form {
    width: 300px;
    margin: 0 auto;
    position: relative;
    z-index: 5;
    background: var(--color-bg);
    border: 1px solid var(--color-white);
    border-radius: var(--radius);
    box-shadow: var(--shadow-panel);
}

.masked_mail {
    margin-top: 14px;
}

.masked_mail p {
    color: gray;
    font-size: 12px;
}

.login-form .header {
    padding: 40px 30px 30px;
    text-align: center;
}

.login-form .header h1 {
    margin-bottom: 10px;
    font-size: 20px;
    line-height: 34px;
    font-weight: 300;
    color: var(--color-text);
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 1);
}

.login-form .header span {
    font-size: 16px;
    line-height: 16px;
    color: var(--color-muted);
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 1);
}

.login-form .content {
    padding: 0 30px 25px;
}

.login-form .content .input {
    width: 235px;
    padding: 15px 25px;
    font-family: var(--font-base);
    font-size: 14px;
    font-weight: 400;
    color: var(--color-gray);
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 1);
    background: var(--color-white);
    border: 1px solid var(--color-white);
    border-radius: var(--radius);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
    transition: all 0.3s ease;
}

.login-form .content .password,
.login-form .content .pass-icon {
    margin-top: 25px;
}

.login-form .content .input:hover,
.login-form .content .input:focus {
    background: #dfe9ec;
    color: var(--color-text);
}

.login-form .content .input:focus {
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.25);
}

.user-icon,
.pass-icon {
    width: 46px;
    height: 47px;
    display: block;
    position: absolute;
    left: 0;
    padding-right: 2px;
    z-index: 3;
    border-top-left-radius: var(--radius);
    border-bottom-left-radius: var(--radius);
    transition: all 0.3s ease;
}

.user-icon {
    top: 147px;
    background: rgba(65, 72, 72, 0.75) url(../images/user-icon.png) no-repeat center;
}

.pass-icon {
    top: 221px;
    background: rgba(65, 72, 72, 0.75) url(../images/pass-icon.png) no-repeat center;
}

.login-form .footer {
    padding: 25px 30px 5px;
    overflow: auto;
    text-align: center;
    background: var(--color-footer);
    border-top: 1px solid var(--color-white);
    box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.15);
}

.button,
.button-cancel,
.login-form .footer .register {
    transition: all 0.3s ease;
}

.button,
.button-cancel {
    display: inline-block;
    padding: 11px 25px;
    font-family: var(--font-button);
    font-size: 18px;
    font-weight: 300;
    color: var(--color-white);
    text-decoration: none;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
    border-radius: var(--radius);
    cursor: pointer;
    box-shadow: var(--shadow-inset-soft);
}

.login-form .footer .button {
    background: var(--color-primary);
    border: 1px solid var(--color-primary-border);
}

.login-form .footer .button:hover {
    background: var(--color-primary-hover);
    border-color: rgba(255, 255, 255, 0.75);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

.login-form .footer .button:focus {
    position: relative;
    bottom: -1px;
    background: var(--color-primary);
    box-shadow: inset 0 1px 6px rgba(255, 255, 255, 0.75);
}

.button-cancel {
    background: var(--color-secondary);
    border: 1px solid var(--color-secondary);
}

.button-cancel:hover {
    background: var(--color-secondary-hover);
    border-color: rgba(255, 255, 255, 0.75);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

.button-cancel:focus {
    position: relative;
    bottom: -1px;
    background: #c0c0c0;
    box-shadow: inset 0 1px 6px rgba(255, 255, 255, 0.75);
}

.login-form .footer .register {
    display: block;
    float: right;
    margin-right: 20px;
    padding: 10px;
    background: none;
    border: none;
    font-size: 18px;
    font-weight: 300;
    color: var(--color-text);
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
    cursor: pointer;
}

.login-form .footer .register:hover {
    color: var(--color-primary-hover);
}

.login-form .footer .register:focus {
    position: relative;
    bottom: -1px;
}

.alert {
    margin-bottom: 20px;
    padding: 10px;
    font-size: 12px;
    font-weight: bold;
    border: 1px solid transparent;
    border-radius: 4px;
}

.alert > p,
.alert > ul {
    margin-bottom: 0;
}

.alert-err {
    padding: 10px;
    color: var(--color-error-text);
    background-color: var(--color-error-bg);
    border-color: var(--color-error-border);
}

.alert-err p {
    margin: 0 0 0 22px;
    padding: 0;
}

.space5 { height: 5px; clear: both; }
.space10 { height: 10px; clear: both; }
.space20 { height: 20px; clear: both; }
.space30 { height: 30px; clear: both; }
